#ifndef _ZLER_SEQ_LIST_H_
#define _ZLER_SEQ_LIST_H_

typedef void SeqList;
typedef void SeqListNode;

//创建并且返回一个空的线性表
SeqList* SeqList_Create(int capacity);

//销毁一个线性表
void SeqList_Destroy(SeqList* list);

//将一个线性表中的所有元素清空, 线性表回到创建时的初始状态
void SeqList_Clear(SeqList* list);

//返回一个线性表中的所有元素个数
int SeqList_Length(SeqList* list);

int SeqList_Capacity(SeqList* list);

//向一个线性表的pos位置处插入新元素node
int SeqList_Insert(SeqList* list, SeqListNode* node, int pos);

//获取一个线性表的pos位置处的元素
SeqListNode* SeqList_Get(SeqList* list, int pos);

//删除一个线性表的pos位置处的元素 返回值为被删除的元素, NULL表示删除失败
SeqListNode* SeqList_Delete(SeqList* list, int pos);

#endif